<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //Promise.all方法和 Promise.race()方法
        // 上面两个方法都是多个Promise对象处理

        // 创建多个Promise对象
        const p1 = Promise.resolve("操作成功1");
        const p2 = Promise.resolve("操作成功2");
        const p3 = Promise.reject("操作失败3");
        const p4 = new  Promise((resolve, reject) => {
            setTimeout(()=>{
                resolve("ok");
            },1000);
            
        })
        const p5 = Promise.resolve(Promise.reject("操作失败5"));

        console.log(p1,p2,p3,p4,p5);

        // all方法接收多个Promise对象（使用数组传入），并返回一个新的Promise对象
        // 若参数中的promise都是成功的，那么返回的Promise也是成功的，其值PromiseResult是多个参数Promise的结果汇总（数组格式）
        // 若参数中多个promise有一个是失败的，那么返回的Promise也是失败的，其值是第一个失败的promise值
        const ob = Promise.all([p5, p1, p2, p3, p4]);
        console.log(ob);


        // race方法, 第一个完成的promise的结果状态就是最终的结果状态（无论成功还是失败）
        const oa = Promise.race([p4,p3,p5]);

        console.log(oa);

    </script>
</body>
</html>